package controller;

import com.jme3.scene.Spatial;
import controls.GameControl;

import utilities.Key;
import eventManager.IEventListener;

public interface IController extends IEventListener {

	public Key getKey();	
	public int getKeyValue();
	
//	public void setSpatial(Spatial spatial); //currently active spatial	
	public void addSpatial(Spatial spatial); //add to list of all spatials attached
	
	//Utilized by gameState to register, remove events from eventManager
	public void registerEvents();	
	public void deleteEvents();
	
	//Loads events the controller listens for, strategies they use to handle them
	public void loadStrategy(IEventListener strategy);
	
	public void addGameControl(GameControl control, String spatialName);
	public void removeGameControl(String name);
	
	public void update(float tpf);
}

//public void setModel(IModel model);

//Handles all events generated in this MVC grouping and sent to the outside world
//public void processOutgoingEvent(IEventData event);

//public void registerGameControls();